package com.yuzhi.master.drainMsgTemplate.service;


import com.yuzhi.common.core.domain.entity.SysDictData;
import com.yuzhi.common.core.page.PageDataInfo;
import com.yuzhi.master.drainMsgTemplate.domain.vo.DrainMsgTemplateVo;
import com.yuzhi.master.drainMsgTemplate.domain.bo.DrainMsgTemplateBo;
import com.yuzhi.master.drainMsgTemplate.domain.request.DrainMsgTemplateReq;


import java.util.Collection;
import java.util.List;

/**
 * 消息通知模板Service接口
 *
 * @author coding123
 * @date 2025-08-20
 */
public interface IDrainMsgTemplateService {

    /**
     * 查询消息通知模板
     */
    DrainMsgTemplateVo queryById(String id);

    /**
     * 查询消息通知模板列表
     */
    PageDataInfo<DrainMsgTemplateVo> queryPageList(DrainMsgTemplateReq request);

    /**
     * 查询消息通知模板列表
     */
    List<DrainMsgTemplateVo> queryList(DrainMsgTemplateReq request);

    /**
     * 新增消息通知模板
     */
    Boolean insertByBo(DrainMsgTemplateBo bo);

    /**
     * 修改消息通知模板
     */
    Boolean updateByBo(DrainMsgTemplateBo bo);

    /**
     * 根据id删除消息通知模板信息
     */
    Boolean deleteById(String id, Boolean isValid);

    /**
     * 校验并批量删除消息通知模板信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    /**
     * 查询消息模板变量
     *
     * @return
     */
    List<SysDictData> selectTemplateDict();

    /**
     * 根据消息类型查询消息模板
     *
     * @param msgType
     * @return
     */
     DrainMsgTemplateVo queryMsgTemplate(String msgType);

}
